\documentclass[handout]{slide}



\renewcommand{\mytitle}{第九章\quad 多元函数微分法及其应用 }
\renewcommand{\mysubtitle}{第十节\quad 最小二乘法}
\graphicspath{ {./images/} }
\newcommand{\grad}{\mathrm{\symbf{grad}}}
\begin{document}



许多工程问题， 常常需要根据两个变量的几组实验数值一一实验数据， 来找出这两个变量间的函数关系的近似表达式。 通常把这样得到的函数的近似表达式叫做\emph{经验公式}。 经验公式建立以后， 就可以把生产或实验中所积累的某些经验， 提高到理论上加以分析。下面通过举例介绍常用的一种建立经验公式的方法。
\begin{example}
为了测定刀具的磨损速度， 我们做这样的实验： 经过一定时间 (如每隔 $1 \mathrm{~h}$ ), 测量一次刀具的厚度， 得到一组实验数据如下：
\begin{center}
  \begin{tabular}{c|c|c|c|c|c|c|c|c}
  \hline
顺序编号 $i$ & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
\hline
时间 $t_{i} / \mathrm{h}$ & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
\hline
刀具厚度 $y_{i} / \mathrm{mm}$ & 27.0 & 26.8 & 26.5 & 26.3 & 26.1 & 25.7 & 25.3 & 24.8 \\
\hline
\end{tabular}
\end{center}
试根据上面的实验数据建立 $y$ 和 $t$ 之间的经验公式 $y=f(t)$. 也就是， 要找出一个能使上述数据大体适合的函数关系 $y=f(t)$.
\end{example}


首先， 要确定 $f(t)$ 的类型。 为此， 可按下面的方法处理。 在直角坐标系中取 $t$ 为横坐标， $y$ 为纵坐标， 描出上述各对数据的对应点， 如图 9-12 所示。 从图上可以看出，这些点的连线大致接近于一条直线。 于是， 就可以认为 $y=f(t)$ 是线性函数， 并设
\[
f(t)=a t+b
\]
其中 $a$ 和 $b$ 是待定常数。

常数 $a$ 和 $b$ 如何确定呢? 最理想的情形是选取这样的 $a$ 和 $b$, 能使直线 $y=a t+b$ 经过图 9-12 中所标出的各点。 但在实际上这是不可能的。 因为这些点本来就不在同一条直线上。 因此， 只能要求选取这样的 $a, b$, 使得 $f(t)=a t+b$ 在 $t_{0}, t_{1}, t_{2}, \cdots, t_{7}$ 处的函数值与实验数据 $y_{0}, y_{1}, y_{2}, \cdots, y_{7}$ 相差都很小， 就是要使偏差
\[
y_{i}-f\left(t_{i}\right) \quad(i=0,1,2, \cdots, 7)
\]
都很小。那么如何达到这一要求呢? 能否设法

\begin{center}
\includegraphics[max width=\textwidth]{2024_01_20_3f478344d98272341b49g-73}
\end{center}

\caption*{图 9-12}
 使偏差的和

\[
\sum_{i=0}^{7}\left[y_{i}-f\left(t_{i}\right)\right]
\]

很小来保证每个偏差都很小呢? 不能， 因为偏差有正有负， 在求和时， 可能互相抵消。 为了避免这种情形， 可对偏差取绝对值再求和， 只要

\[
\sum_{i=0}^{7}\left|y_{i}-f\left(t_{i}\right)\right|=\sum_{i=0}^{7}\left|y_{i}-\left(a t_{i}+b\right)\right|
\]

很小， 就可以保证每个偏差的绝对值都很小。 但是这个式子中有绝对值符号， 不便于进一步分析讨论。 由于任何实数的平方都是正数或零， 因此可以考虑选取常数 $a$ 与 $b$, 使

\[
M=\sum_{i=0}^{7}\left[y_{i}-\left(a t_{i}+b\right)\right]^{2}
\]

最小来保证每个偏差的绝对值都很小。 这种根据偏差的平方和为最小的条件来选择常数 $a$ 与 $b$ 的方法叫做最小二乘法。 这种确定常数 $a$ 与 $b$ 的方法是通常所采用的。

现在我们来研究， 经验公式 $y=a t+b$ 中， $a$ 和 $b$ 符合什么条件时， 可以使上述的 $M$ 为最小。 如果把 $M$ 看成与自变量 $a$ 和 $b$ 相对应的因变量， 那么问题就可归结为求函数 $M=$ $M(a, b)$ 在哪些点处取得最小值。由第八节中的讨论可知， 上述问题可以通过求方程组

\[
\left\{\begin{array}{l}
M_{a}(a, b)=0 \\
M_{b}(a, b)=0
\end{array}\right.
\]

的解来解决， 即令

\[
\left\{\begin{array}{l}
\frac{\partial M}{\partial a}=-2 \sum_{i=0}^{7}\left[y_{i}-\left(a t_{i}+b\right)\right] t_{i}=0, \\
\frac{\partial M}{\partial b}=-2 \sum_{i=0}^{7}\left[y_{i}-\left(a t_{i}+b\right)\right]=0,
\end{array}\right.
\]

亦即

\[
\left\{\begin{array}{l}
\sum_{i=0}^{7} t_{i}\left[y_{i}-\left(a t_{i}+b\right)\right]=0, \\
\sum_{i=0}^{7}\left[y_{i}-\left(a t_{i}+b\right)\right]=0 .
\end{array}\right.
\]

将括号内各项进行整理合并， 并把未知数 $a$ 和 $b$ 分离出来， 便得

\[
\left\{\begin{array}{l}
a \sum_{i=0}^{7} t_{i}^{2}+b \sum_{i=0}^{7} t_{i}=\sum_{i=0}^{7} y_{i} t_{i}, \\
a \sum_{i=0}^{7} t_{i}+8 b=\sum_{i=0}^{7} y_{i} .
\end{array}\right.
\]

下面通过列表来计算 $\sum_{i=0}^{7} t_{i}, \sum_{i=0}^{7} t_{i}^{2}, \sum_{i=0}^{7} y_{i}$ 及 $\sum_{i=0}^{7} y_{i} t_{i}$.

\begin{center}
\begin{tabular}{c|c|c|c|c}
\hline
 & $t_{i}$ & $t_{i}^{2}$ & $y_{i}$ & $y_{i} t_{i}$ \\
\hline
 & 0 & 0 & 27.0 & 0 \\
 & 1 & 1 & 26.8 & 26.8 \\
 & 2 & 4 & 26.5 & 53.0 \\
 & 3 & 9 & 26.3 & 78.9 \\
 & 4 & 16 & 26.1 & 104.4 \\
 & 5 & 25 & 25.7 & 128.5 \\
 & 6 & 36 & 25.3 & 151.8 \\
 & 7 & 49 & 24.8 & 173.6 \\
\hline
合计 & 28 & 140 & 208.5 & 717.0 \\
\hline
\end{tabular}
\end{center}

代人方程组 $(10-1)$, 得到

\[
\left\{\begin{array}{l}
140 a+28 b=717 \\
28 a+8 b=208.5
\end{array}\right.
\]

解此方程组， 得到 $a=-0.3036, b=27.125$. 这样便得到所求经验公式为

\[
y=f(t)=-0.3036 t+27.125 .
\]

由 (10-2) 式算出的函数值 $f\left(t_{i}\right)$ 与实测的 $y_{i}$ 有一定的偏差。 现列表比较如下：

\begin{center}
\begin{tabular}{c|c|c|c|c|c|c|c|c}
\hline
$t_{i} / \mathrm{h}$ & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
\hline
\begin{tabular}{c}
实测的 \\
$y_{i} / \mathrm{mm}$ \\
\end{tabular} & 27.0 & 26.8 & 26.5 & 26.3 & 26.1 & 25.7 & 25.3 & 24.8 \\
\hline
\begin{tabular}{c}
算得的 \\
$f\left(t_{i}\right) / \mathrm{mm}$ \\
\end{tabular} & 27.125 & 26.821 & 26.518 & 26.214 & 25.911 & 25.607 & 25.303 & 25.000 \\
\hline
偏差 $/ \mathrm{mm}$ & -0.125 & -0.021 & -0.018 & 0.086 & 0.189 & 0.093 & -0.003 & -0.200 \\
\hline
\end{tabular}
\end{center}

偏差的平方和 $M=0.108165$, 它的算术平方根 $\sqrt{M}=0.329 . \sqrt{M}$ 称为均方误差， 它的大小在一定程度上反映了用经验公式来近似表达原来函数关系的近似程度的好坏。
在例 1 中， 按实验数据描出的图形接近于一条直线。 在这种情形下， 就可认为函数关系是线性函数类型的， 从而问题可化为求解一个二元一次方程组， 计算比较方便。 还有一些实际问题， 经验公式的类型不是线性函数，但可以设法把它化成线性函数的类型来讨论。举例说明于下：

例 2 在研究某单分子化学反应速度时， 得到下列数据：

\begin{center}
\begin{tabular}{c|c|c|c|c|c|c|c|c}
\hline
$i$ & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\
\hline
$\tau_{i}$ & 3 & 6 & 9 & 12 & 15 & 18 & 21 & 24 \\
\hline
$y_{i}$ & 57.6 & 41.9 & 31.0 & 22.7 & 16.6 & 12.2 & 8.9 & 6.5 \\
\hline
\end{tabular}
\end{center}

其中 $\tau$ 表示从实验开始算起的时间， $y$ 表示时刻 $\tau$ 反应物的量。 试根据上述数据定出经验公式 $y=f(\tau)$.

解 由化学反应速度的理论知道， $y=f(\tau)$ 应是指数函数 $y=k \mathrm{e}^{m \tau}$, 其中 $k$ 和 $m$ 是待定常数。 对这批数据， 先来验证这个结论。 为此， 在 $y=k \mathrm{e}^{m \tau}$ 的两端取常用对数， 得

$\lg y=(m \lg$ e $) \tau+\lg k$.

记 $m \lg \mathrm{e}$ 即 $0.4343 m=a, \lg k=b$, 则上式可写为

\[
\lg y=a \tau+b
\]

于是 $\lg y$ 就是 $\tau$ 的线性函数。 所以，把表中各对数据 $\left(\tau_{i}, y_{i}\right)(i=1,2, \cdots, 8)$ 所对应的点描在半对数坐标系上(半对数坐标系的横轴上各点处所标明的数字与普通的直角坐标系相同， 而纵轴上各点处所标明的数字是这样的， 它的常用对数就是该点到原点的距离), 如图 9-13 所示。 从图上看出， 这些点的连线非常接近于一条直线， 这说明 $y=f(\tau)$ 确实可以认为是指数函数。

下面来具体定出 $k$ 与 $m$ 的值。 由于

\[
\lg y=a \tau+b
\]

\includegraphics[max width=\textwidth]{2024_01_20_3f478344d98272341b49g-75}
\caption*{图 9-13}



所以可仿照例 1 中的讨论， 通过求方程组

\[
\left\{\begin{array}{l}
a \sum_{i=1}^{8} \tau_{i}^{2}+b \sum_{i=1}^{8} \tau_{i}=\sum_{i=1}^{8} \tau_{i} \lg y_{i}, \\
a \sum_{i=1}^{8} \tau_{i}+8 b=\sum_{i=1}^{8} \lg y_{i}
\end{array}\right.
\]

的解， 把 $a$ 与 $b$ 确定出来。

下面通过列表来计算 $\sum_{i=1}^{8} \tau_{i}, \sum_{i=1}^{8} \tau_{i}^{2}, \sum_{i=1}^{8} \lg y_{i}$ 及 $\sum_{i=1}^{8} \tau_{i} \lg y_{i}$.

\begin{center}
\begin{tabular}{c|c|c|c|c|c}
\hline
 & $\tau_{i}$ & $\tau_{i}^{2}$ & $y_{i}$ & $\lg y_{i}$ & $\tau_{i} \lg y_{i}$ \\
\hline
\multirow{3}{*}{} & 3 & 9 & 57.6 & 1.7604 & 5.2812 \\
 & 6 & 36 & 41.9 & 1.6222 & 9.7332 \\
 & 9 & 81 & 31.0 & 1.4914 & 13.4226 \\
 & 12 & 144 & 22.7 & 1.3560 & 16.2720 \\
 & 15 & 225 & 16.6 & 1.2201 & 18.3015 \\
 & 18 & 324 & 12.2 & 1.0864 & 19.5552 \\
 & 21 & 441 & 8.9 & 0.9494 & 19.9374 \\
 & 24 & 576 & 6.5 & 0.8129 & 19.5096 \\
\hline
合计 & 108 & 1836 &  & 10.2988 & 122.0127 \\
\hline
\end{tabular}
\end{center}

将它们代人方程组 $(10-3)\left(\right.$ 其中取 $\left.\sum_{i=1}^{8} \lg y_{i}=10.3, \sum_{i=1}^{8} \tau_{i} \lg y_{i}=122\right)$, 得

\[
\left\{\begin{array}{l}
1836 a+108 b=122 \\
108 a+8 b=10.3
\end{array}\right.
\]

解这个方程组， 得

\[
\left\{\begin{array}{l}
a=0.4343 m=-0.045 \\
b=\lg k=1.8964
\end{array}\right.
\]

所以

\[
m=-0.1036, \quad k=78.78 .
\]

因此所求的经验公式为

\[
y=78.78 \mathrm{e}^{-0.1036 \tau} .
\]


